We're from north of Philly and have made the drive several times. We typically like to get to Fredericksburg, VA on day 1 of the drive home. Lots of hotel options there. We usually choose a Hilton or Marriott property. On our drive home last month we got a later start than we had wanted to so we ended up stopping in Stoney Creek, VA instead (a little north of Emporia). Long story how we ended up there instead of actually in Emporia or Richmond, but we stayed at a Fairfield Inn there that was very nice. It looked fairly new and the staff was very friendly. Breakfast was good. The bad thing about that exit is that there is basically *nothing* there other than 2 hotels, a gas station with a Wendy's, and a small Pizza/Italian restaurant where we ate dinner. The food there was fine, nothing spectacular.
We don't make any hotel reservations ahead of time for the drive since we don't really have a schedule. Sometimes we get further than we expected to and sometimes we don't get as far as we expected to. We drive until about 6-7:00 p.m. and then get off at an exit with a lot of hotels and pull in to a parking lot. Then we use various apps to look for the best rate for whatever hotels we're interested in staying at. Only once in the last 6 trips (a total of 3 hotel stays for each trip) have we not been able to find a hotel at the exit we got off at. And in that case, we just immediately looked at the hotels that were available at the next exit and booked one from there.