Der Motor wird ca 2x hin oder her geschaltet, dann schaltet der MC33926 die "over-current Protection" ein und
es sind beide Motorausgänge auf +12V geschaltet.
Da sich der Motor zuerst dreht, liegt das wohl an der Software.
Wenn du beide Inputs des Boards auf HIGH schaltest und das kann an einer Stelle im Programm passieren, dann gehen auch beide Outputs auf HIGH, daher schließt du den Motor kurz. Hast du mal überprüft, ob beide Inputs auch auf HIGH sind?
else if (left == rightN) // sind links u. rechts gleich, in dieser stellung für 30 sek. bleiben
{
pauseMillis = millis();
//Serial.println(F("Horizontal Optimal !"));
digitalWrite(moveleft, HIGH);
digitalWrite(moveright, HIGH);
lcd.setCursor(14,1);
lcd.write(2);
}
Ändere das mal auf LOW, dann bleibt der Motor auch in seiner Position.
Versuch doch zunächst mal den Motor nur über ein ganz simples Programm zu steuern. Indem du einfach nur einen der beiden Inputs auf HIGH setzt.