Hughes sent Adam on as a replacement for Marko Arnautovic after a first half in which Stoke were second best, and the Scotland midfielder took just five minutes to break the deadlock.
After an Erik Pieters blunder had gifted Libor Kozak an equaliser, Peter Crouch scored Stoke's winner against one of his former clubs.
The result lifted Stoke above their opponents to 10th, and left Hughes satisfied.
"In the first half it was a little bit difficult for us to get a foothold in the game," said the Welshman.
"We had the wind in our faces and we didn't really get on the front foot. It was really difficult for us.
"I made a change at half-time and I think that probably helped us. I felt we needed a little bit more control in the middle of the park. I wanted to give Marko an opportunity just off the front, but he was finding it a little bit difficult to get into the game.
"I'm not going to take all the credit - you can give it to me if you want - but Charlie's come on and made an impact. I thought he played very well in the second half. And I wanted the benefit of his delivery from set-plays."
"We were much better [in the second half]. We had the benefit of the wind. Charlie's come on and scored, which set up the half very nicely for us."
Hughes was also pleased with the way Stoke responded to Pieters' error, which saw the full-back offer Kozak a simple opportunity with an ill-judged header back towards his own goal.
"Obviously we had to pick ourselves up with the disappointment of the equaliser, but I was really pleased with the reaction of Erik himself and his team-mates that got round him and picked him up very quickly - that was important for us," said Hughes.
"And then we were able to go and score a very good goal at the other end to get back into the lead. Overall the second-half performance from us was very good."
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.