Yo creo que te estás complicando la vida.
En primer lugar, dentro de unos márgenes (los que impone el aislante del bobinado del motor), da igual qué tensión le llegue al motor, siempre que la potencia que disipe esté dentro de los márgenes que admita el motor. Así, puedes poner en esa patilla 5V, y hacer el firmware de forma que el duty cycle de la señal PWM no varíe entre el 0% y el 100%, sino entre el 0% y el
65% (aproximadamente, esto tendrás que calcularlo mejor).
En segundo lugar, no hay ninguna necesidad de que esa tensión esté regulada. Al motor le va a dar igual, con que esté rectificada es suficiente. Entonces, si tu alimentación utiliza un transformador de, por ejemplo, 9V, a su salida, una vez rectificada y filtrada (mediante un buen condensador electrolítico) la tensión será de unos 12V, que puedes usar directamente para alimentar el motor (a través del L293). Naturalmente, ahora el firmware debe garantizar que el duty cycle esté entre 0% y 40% (aproximadamente).
Eso es lo que se suele hacer. Los motores se alimentan directamente, con tensión no regulada, y sólo regulas la tensión que alimenta a la lógica. Así te ahorras toda la potencia que disiparía el regulador para bajar de 12V a
3.5V. Precisamente una de las ventajas de usar métodos PWM para alimentar aparatos (en este caso el motor) es que se disipa menos potencia en forma de calor que con otros sistemas.
En el caso de los motores, hay una ventaja añadida. Como un motor necesita mucha más energía en el arranque (para vencer su inercia) que en funcionamiento continuo, se suele hacer el firmware de forma que para el arranque (en realidad, para cualquier aceleración), durante unos instantes se aplique un duty cycle del 10%, consiguiendo arranques y cambios de velocidad mucho más rápidos.