San Blas has a number of hotels , like Patolos Hotel on the main street coming from Tepic can't miss it. Hotel Morelos on Batallon south of plaza is cozy and cheaper.Both secure parking.
Morelia is worth it ,Hostal Allende at 843 Calle Allende is downton , tourist hotel.Hotel Villa Capri on Av Madero 206 west(Mex 15 in far west end.) is very nice , and economcal too .
Oaxaca has lots of hotels and is the place to stay if you want to visit Monte Alban because that is only a ruins site. Hotel America at 413 Aldama is my regular stop. no noisy bars or discos nearby to keep you awake till 6 am. If you want something opulent try Hotel Paris 521 Trujano west of plaza, the owner manager is a motorcyclist would enjoy talking with you.
Hotels are where you find them.
Starrt looking early enough and know enough when you should consider not pushing your luck.