diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp
index d2ac4a84fb57838f164ee2549657c2502ac1b82f..33351f744f566898b50efc931e87607b40842243 100644
--- a/Marlin/stepper.cpp
+++ b/Marlin/stepper.cpp
@@ -2095,9 +2095,9 @@ void Stepper::report_positions() {
   #define BABYSTEP_AXIS(AXIS, INVERT, DIR) {            \
       const uint8_t old_dir = _READ_DIR(AXIS);          \
       _ENABLE(AXIS);                                    \
-      _SAVE_START;                                      \
       _APPLY_DIR(AXIS, _INVERT_DIR(AXIS)^DIR^INVERT);   \
-      _PULSE_WAIT;                                      \
+      DELAY_NS(400); /* DRV8825 */                      \
+      _SAVE_START;                                      \
       _APPLY_STEP(AXIS)(!_INVERT_STEP_PIN(AXIS), true); \
       _PULSE_WAIT;                                      \
       _APPLY_STEP(AXIS)(_INVERT_STEP_PIN(AXIS), true);  \
@@ -2168,6 +2168,8 @@ void Stepper::report_positions() {
           Y_DIR_WRITE(INVERT_Y_DIR ^ z_direction);
           Z_DIR_WRITE(INVERT_Z_DIR ^ z_direction);
 
+          DELAY_NS(400); // DRV8825
+
           _SAVE_START;
 
           X_STEP_WRITE(!INVERT_X_STEP_PIN);