а мой опыт говорит, что считать логику по таймеру отдельно от прорисовки совершенно бесполезно.
Что можно посоветовать.
1. Так как шаг enterFrameHandler непостоянный, то изменять координаты по правилу:

Код:
dt = curTime-prevTime;
shift = curPosition + speed*dt;
т.е. приращение координат зависит от времени, что прошло между двумя кадрами, а не константно.
2. Добавить эффекты размытия. Когда что-то быстро движется в реальном мире - мы видим шлейф за этим предметом. При программировании быстрого перемещения об этом забывают, а так как принципы создания изображения на экране таковы, что что изображение меняется скачками - то перемещение выглядит дерганым и неестественным.
3. Неконстантная скорость. В реальном мире предметы разгоняются, движутся на большой скорости, тормозят. Мгновенное ускорение и мгновенная остановка делают перемещение неестественным. Добавить easing надо.