The 27-year-old, who joined the Potters from Ipswich last year, will remain at the Premier League club until 2015.
Stoke boss Tony Pulis has revealed his delight that the frontman, who finished as the club's joint top scorer, has committed his future to the Potters.
"I'm very pleased for Jon because he's come in as a lower-league player and established himself to play a part in the Premier League. In fact, he's done more than that," Pulis told the Stoke Sentinal.
"We're very pleased he's agreed a new deal and made sure his long-term future lies with us."