The answer to this is a little bit complicated and depends on whether you're using proto2 or proto3. Enums and int32 do share the same wire format, but you have to be careful with unknown enum values. In proto2, if you parse an unknown enum value then it will end up in the unknown field set and the enum field will appear to be absent. So if you migrate your field from an enum to int32 then you have to be aware that binaries using the old schema will have this parsing behavior if they try to parse an int that wasn't in the original enum definition. Actually to be fair, the same problem can occur any time you add new values to a proto2 enum.
We fixed this problem in proto3 by making proto3 enums "open", meaning they can store arbitrary integer values normally instead of treating them like unknown fields. So in proto3, moving from an enum to int32 is safer.
Overall I think this is probably a safe change even in proto2 if you do it carefully, especially if you can make sure all binaries get updated before you start using int values that weren't included in the original enum.