Hmm then I think you might be better off just using an "every tick" with a Set sprite.x = sprite.x + 2 or whatever will hit the exact conditions you need.
Or you can add a check that will set the sprite to the correct position you need after it reach it.
So if "Bullet distance travelled >= 100" -> Set sprite.x = 100. And if you need to make it more dynamic, just store the sprite.x start position, and calculate what the new condition should be, based on that. So if its every 100 pixel.
You can compare the starting condition to the sprite current position and divide it by 100 and multiply that with 100.
So instead of sprite.x = 100, you make it:
sprite.x = Round((Starting_position + sprite.X)/100) * 100
However depending on which way the sprite is travelling you need to change the + to - I think, to make it work.
So if its travelling left it needs to be:
starting_position - sprite.x
And if its travelling right it needs to be:
starting_position + sprite.x
At least I think it will work. But math aint exactly my strongest point to be honest, so it might be wrong as I haven't tested it. :D But you can probably see if it works if you do it that way.