Die "Enable"-Pins sind die, die die Drehzahl steuern, das ist richtig. Erkennst du hier:

Code:
analogWrite(ENABLE1, i);       // Motor 1 Speed
        analogWrite(ENABLE2,i);      // Motor 2 Speed
Dort werden die "analog" geschrieben-sprich, da wird der PWM-Wert ausgegeben.
Die anderen beiden (pro Motor) scheinen lediglich umgepolt zu werden (LOW legt den Pin auf Masse, HIGH auf 5V), um quasi den Motor umzupolen, für vorwärts und rückwärts.
Lass dich nicht davon beirren, dass auch die Enable-Pins Digitalpins sind, das macht nix!
Auch kann man die ohne weiteres Digital beschreiben (dann bleibt er HIGH so lange ich ihn nicht auf LOW setze) oder eben "analog"- das ist nix anderes als ne Folge von zeitlich abgestimmten HIGH`s und LOW`s.

Aber damits einfach geht, müssen eben die enable-Leitungen (Vorschlag: nenn sie einfach mal PWM1-4, wirds besser verständlich) an Pins liegen, die der Arduino als PWM-Pins nutzen kann.
Bei den anderen Leitungen ist das Wurst, da kannst du alles für nehmen.