Marco non voglio sembrarti scortese, ma presenti un codice dove almeno io non ci capisco nulla.
Dichiari:
pinMode(DIR_PIN_M1, OUTPUT);
pinMode(STEP_PIN_M1, OUTPUT);
Ma dove sono? Hai riportato parte del codice e non è completo? Cos'è?
Dove dichiari che i buttonPin sono di INPUT?
buttonState lo dichiari e non lo usi.
Boh...