When you say you hold the menu. Does that mean when you draw the frame the equation results in a huge jump in x? If so you will need to handle that.

If you sprite has a number of cells of animation then obviously you do not want to go to the next cell each frame instead you have a "animation counter" as part of your object

if TimeGetTime > AnimationCount then
begin
inc(animationCell);
AnimationCount := TimeGetTime + 250;
if animationcell MaxCells then Animation := 0;
end;

That way the animation should be smooth