diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp
index 42b903e415..2d10820823 100644
--- a/Marlin/stepper.cpp
+++ b/Marlin/stepper.cpp
@@ -749,6 +749,8 @@ ISR(TIMER1_COMPA_vect) {
       step_loops = step_loops_nominal;
     }
 
+    OCR1A = (OCR1A < (TCNT1 +16)) ? (TCNT1 + 16) : OCR1A;
+
     // If current block is finished, reset pointer
     if (step_events_completed >= current_block->step_event_count) {
       current_block = NULL;