To paraphrase your question, you are using "bang-bang" control to keep the velocity of your vehicle within a desired range, and want to know if there is a better way to minimize energy consumption per distance traveled.
The answer is almost definitely "yes," with one exception: IF $v_{min}$ and $v_{max}$ values are very close together, and IF the system contains sufficient damping so that the velocity does not overshoot the target $v$, and IF the bang-bang controller is implemented efficiently, and IF the target $v$ is at the most efficient operating point for your vehicle, then no, there would likely not be a more efficient algorithm. But all of these conditions are probably not true.
To implement a controller that minimizes energy consumption, you really need to know the efficiency of your vehicle for the universe of operating conditions the vehicle will be subjected to. I would map this out (experimentally or algorithmically, as @hauptmech describes), then determine the optimal operating points. Since your vehicle probably starts from rest, you will need to integrate the energy used for various acceleration profiles when speeding up to the desired operating point in order to reduce losses at the beginning of travel, then use the optimal acceleration profile to define the velocity setpoints for the controller during a journey. Repeat this for the deceleration period when ending a journey. Finally, the system stability (or its ability to remain at a target $v$ over time) will determine whether or not you need to implement a more advanced controller than bang-bang. I would start with a proportional-plus-derivative controller attempting to servo around a specific velocity target, rather than a velocity range as you have implemented. That way you can minimize the variance from the target $v$ without allowing it to vary by an arbitrary amount.