This one has been bugging my friend and I for ages now and we cant find a way past it

any solutions greatly appreciated (or is it just a bug?)
Scene: moving an image across the screen.
If I use
for n=x1 to x2 step -5, where x1 > x2
everything works dandy and the image moves smoothly from right to left, but....
If I use a variable to define the step, say
m as in;
for n=x1 to x2 step m , where x1 > x2 and m= -5
instead of the image moving smoothly across the screen it just warps instantly from position x1 to x2. This is baffling me. I've tried it in other languages (on the old Amiga) and it works fine - just doesnt work in DBPro.