If you're using dt to modify the object's movement (e.g. every tick add 1*60*dt to object.X) then you're most likely not going to get it moving at exactly 1 pixel per frame, because dt usually isn't an exact 60th of a second.
There are a number of 3rd party plugins that will allow you to move something an exact distance over time, such as the MoveTo plugin, but if you're just using the core behaviours, you could do something like this, using right movement as an example:
Add an instance variable to your object, targetX and a boolean, moveRight
is moveRight true:
>>trigger once: set object.targetX to self.X+16
>>Every tick if object.X<self.targetX, add self.X+1*60*dt to object
If object.X>=self.targetX set object to self.targetX; set moveRight false
This will at least ensure that you end up exactly 16 pixels away, factoring in dt, but you won't be moving exactly one pixel per frame.
You can also turn on pixel rounding in the project properties and this will draw the sprite to integer pixel values, but the actual X of the object will be a float.