Do the axes always drift in the same direction?

If so, my first suggestions would be to try inverting the direction and/or step active high/low.
When the direction changes, the driver requires that the direction signal is changed at a certain point before the step signal. If it doesn't, the driver can move one step pulse in the wrong direction before changing to the correct direction. Over the course of many moves, this can lead to axis drift in a constant direction.

One possible test for noise problems, is too only move 2 axes, with the other remaining stationary (ideally against a DTI, or mark the coupler so you can see movement easier), and see if the stationary axis moves any. Also try with the spindle running, as they can also produce noise which can cause phantom steps.