If there's acceleration in the game, subpixels will roll seemingly randomly as the pixel speed increases or decreases. Otherwise, subpixels can be used to move the character for a non-integer amount if pixels, then they won't roll "randomly" as your speed changes, but will rather alternate between a limited amount of variations. Note that structs used to store object attributes can be implemented in several ways:
1) List all attributes of on object, then another one's, etc.
2) List one attribute for all objects, then another attribute, etc.
3) Separate some attributes of an object from the rest.
4) Dynamically allocate memory for newly spawned objects in a weird way.
This is to help you get the idea of how far subpixels can be from a pixel coordinate. And of course, it is all assuming the game does have subpixels in the first place.
If you can afford a debugger, set write breakpoint to your pixel coordinate and see if something gets incremented/decremented by a certain value just before the pixel address. It is very common that subpixel value gets added a subpixel speed for the given state of the object, and if it overflows, the integer part goes to pixel coordinate.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.