Last October we stayed for two nights at the Hotel am Markt in St. Goar. Hotel am Markt is in the center of St. Goar, on the Markt square, less than a hundred yards from the KD dock. To the platform at the St. Goar Bahnhof, it's a little over a 5 minute walk (I can't estimate the distance because Google Maps insists on giving a very roundabout route to the Bahnhof).
It has a nice restaurant with the typical "reichhaltiges" breakfast buffet.
I specifically requested a room on as low a floor as possible, so they gave us a really nice one in the new building, which doesn't really have a great river view, but there are a lot of room on the same floor (maybe occupied at the time) with direct views of the river.
I would recommend it.