Tony Pulis' second-half substitutions paid off, with Michael Kightly finding fellow replacement Whitehead following a mistake by defender Jonas Olsson in the 75th minute of a disjointed encounter.
Stoke held on for their first win on the road since 2nd January, while West Brom slipped to their second consecutive defeat.
Asmir Begovic had tipped over a long-range Stephen Reid effort in the first half, while Graeme Dorrans forced the Stoke keeper into action with a fierce shot late in the game.
Albion drew a blank at home for the first time this season and seldom looked like finding a way through the Stoke back four in which skipper Ryan Shawcross was outstanding.
West Brom head coach Steve Clarke made six changes from the side beaten at Swansea in midweek and handed a debut to Sweden striker Markus Rosenberg.
Kenwyne Jones came close to breaking the deadlock in the 14th minute after a quiet opening to the game. The Trinidad & Tobago international got on the end of a cross from Geoff Cameron and directed his header back across goal and only inches wide of the post.
Robert Huth blocked a fierce drive from Mulumbu after Dorrans had found him in space but neither goalkeeper had a save to make in the opening half-hour. Stoke keeper Asmir Begovic had to back-pedal to parry a speculative dipping 40-yard attempt from Steven Reid over the bar.
Pulis replaced Matthew Etherington with former Wolves winger Kightly after 59 minutes, then Clarke brought on forward players Romelu Lukaku and Peter Odemwingie for the ineffective Rosenberg and Gera.
McAuley produced a superb tackle inside the Baggies box to halt Jones in full flight. But after 75 minutes Stoke broke the deadlock after a rare mistake by Olsson.
The centre-back tried to keep the ball in play when challenging Jones but only succeeded in finding Kightly. He ran unopposed into the Albion area and his low cross was turned home by Whitehead.
Begovic parried a Dorrans drive but Stoke held out with relative ease for the three points.