Si es una placa de 8 bits entonces una cosa que deberías revisar también es cuánto pesa el firm al cargarlo en la placa y cuanta memoria le queda disponible al Arduino. Los Marlin son cada vez más pesados y ocupan mucha memoria del micro. Si se satura la memoria (más del 80-90% de la memoria), la impresora hará cosas raras. Me ha pasado. Yo para placas de 8 bits recomiendo no pasar de la 1.1.9, que ya es pesada de por sí. Si es Marlin 2 igual van por ahí los tiros. Solo puede tener activo lo más básico o el archivo compilado crece que da gusto.
Lo de los 4000 pasos, si lo has calculado bien, entonces no hay nada que decir, estará bien. Además, eso lo hubieses notado porque subiría o bajaría una distancia equivocada.
Si todo lo que te he dicho está bien, yo revisaría velocidades, aceleraciones máximas y jerk. Igual al mover el eje desde la pantalla puede porque es un movimiento lento y desde el gcode no porque está programado más rápido y los motores pierden pasos. Es raro porque con los A4988 suena y lo notarías. Lo malo sería que fuesen TMC, que la pérdida de pasos casi no hace ruido y a veces pasa desapercibido.
Por ahora no se me ocurren otros posibles orígenes. Espero que te sirva.