Tyler, Brenham, Georgetown, Salado, Wimberly, Seguin, New Braunfels, Fannin (for the history and forts), Bandera, Kerrville, Old Town Spring, Washington on the Brazos, Fredricksburg, maybe some of the safer border towns. I'm not too familiar with West Texas although I've driven through it often. My husband goes to West Texas every few weeks, but mainly to Midland//Odessa. He wants to make a side trip once to Marfa. I would say El Paso, but it doesn't fit small town, it's more city I guess or very large town. Round Top, West Columbia, Brazoria (but don't know if I'd call it "charming" really but it's chock full of great history related to the founding of Texas. It does have a cute little dowtown). I think I'd have to 2nd houstoner. Just pick a few from each region.
I'll give some of the info from my travel guide. The regions are Big Bend Country, Gulf Coast, Hill Country, Panhandle Plains, Piney Woods, Prairies and Lakes, and South Texas Plains.
If I was in Big Bend Country my picks would be: Presidio (my grandparents used to live there so I'd love to see their old stomping grounds), Marfa, Alpine, Fort Davis. Midland/Odessa and El Paso would be too big I guess. Forgot one, Terlingua!
Gulf Coast: Aransas Pass, Bay area of Houston (league city, seabrook, Kemah, galveston), Brazoria, Brazosport area (Lake Jackson/surfside areas), some areas of Corpus Christi, El Campo, Nederland looks interesting (according to the travel guide anyway), possibly some of the other port towns like Port Aransas, Port Arthur (although I hear mixed reviews), Port Isabel, Port Lavaca, Port Mansfield, Port O'Connor, Refugio, Rockport-Fulton, South Padre, Old Town Spring, Taft, Tomball, West Columbia
Hill Country: Bandera, Boerne, Burnet, Castroville, Comfort, Concan, Dripping Springs, Fredericksburg, Georgetown, Hondo (never been there, but it looks interesting), Kerrville, Llano, New Braunfels, maybe San Marcos, Uvalde, Wimberly.
Panhandle Plains: Abilene, Amarillo (might not qualify since it's bigger than a small town), Brownwood?, Colorado City, Dalhart, been through Dumas but real quickly and didn't get to see anything, Lubbock, Mineral Wells, Post, San Angelo, Sweetwater, Throckmorton, Turkey, Wichita Falls.
Piney Woods: Spent a big chunk of my life in this region so will pretty much just mention places I find interesting. This is a very pretty area to me and in my opinion, really any town here would be nice to visit. Big Sandy (just nice to drive through/good scenery), Kilgore, Kountze, Lufkin, Mineola (again, scenery), Nacogdoches, Texarkana, Tyler.
Prairies and Lakes: Bonham, Brenham, Centerville, Canton, Chappell Hill, maybe Cleburne, Columbus, Cuero, Frisco, Granbury, Hallettsville, Hamilton, Lewisville, Lexington (nice scenery), Lockhart, Luling, Mesquite, Navasota, Palestine, Paris, Plano?, Round Top, Salado, San Felipe, Schulenburg, Sealy, Seguin, Shiner, Smithville, Somerville, Stephenville, Sulphur Springs, Washington and Washington on the Brazos, Waxahachie, Yoakum, Yorktown.
South Texas Plains: Beeville, Carrizo Springs, Eagle Pass, Fannin (battleground historic site), Goliad, Mission, Pleasanton, Poteet.
Long list, I know

. But it should give you a start. I just went through my travel guide by region and only listed places I was familiar with or have spent any length of time in. There are so many more!