Przede wszystkim - nigdy nie zasilaj silników bezpośrednio z wyjść Arudino. Jak widać w opisie tego silnika, może on pobierać od 150 do 2100mA, podczas gdy wyjścia kontrolera zazwyczaj wytrzymują do 40mA.
Wyjścia kontrolera powinny pełnić wyłącznie rolę sterowania prędkością; samo zasilanie silników można zrealizować albo przez podłączenie tranzystorów (poczytaj o mostkach H), albo przez stworzony do tego sterownik, na przykład wspomniany na tej stronie: http://botland.com.pl/sterowniki-silnikow-dc/851-drv8835-dwukanalowy-sterownik-silnikow-modul.html. Na pewno są też jakieś tańsze modele.
Co do samego sterowania prędkością - nie, nie zmienia się tu napięcia. Napięcie jest stałe, za to używa się PWMa - wyjść które włączają i wyłączają się z dużą częstotliwością; na przykład gdy wyjście jest włączone tylko przez 60% czasu, wygląda to jakby pin miał tylko 60% mocy.
Korzystanie z PWMa w Arduino jest bardzo proste: http://www.arduino.cc/en/Reference/analogWrite