Michael Laudrup's men came from two goals behind to take the lead in the 86th minute before conceding even later in injury time to a controversial penalty from the Scot
The visitors had surrendered a two-goal lead at the Liberty Stadium and looked set for their fourth defeat in six Premier League games when a controversial call from referee Robert Madley handed Mark Hughes' men a lifeline.
Jonathan Walters' eighth-minute goal, which came on his 100th consecutive league start, gave Stoke an ideal platform, and Stephen Ireland's first goal in almost two years doubled their advantage before the break.
But a double from Wilfried Bony, sandwiching substitute Nathan Dyer's equaliser, put Swansea on course for a remarkable comeback win.
That was until Wayne Routledge was harshly adjudged to have handled on the line deep into stoppage time, with Adam keeping his cool from the resulting spot-kick.
Swansea manager Michael Laudrup made five changes from the 1-0 loss to rivals Cardiff City in their last league match. Gerhard Tremmel and Bony were two of the additions in the absence of the suspended Michel Vorm and injured Michu.
There was also a double switch in the middle for the Dane, as Jonjo Shelvey and Dyer dropped to the bench to be replaced by Alejandro Pozuelo and Roland Lamah.
Stoke boss Mark Hughes made just the one change from the 1-1 draw against Southampton, with a like-for-like move seeing Wilson Palacios come in for Glenn Whelan.
The visitors took the lead with just eight minutes on the clock, as Walters brushed aside two defenders before steering an effort past Tremmel and in off the post.
Swansea looked to respond but it was Stoke who extended their lead in the 25th minute as Ireland scored his first Premier League goal since December 2011, controlling a ball from Peter Crouch brilliantly before firing home.
Asmir Begovic, a scorer in his last game, denied Swansea twice before the interval, keeping out Bony’s effort and Routledge’s rebound.
The half-time break served the hosts well, though, and in the 56th minute they were able to get back into the game.
Bony found the back of the net, beating Begovic with a powerful header after a fine cross from Jonathan de Guzman.
The hosts continued to pile on the pressure and they were rewarded once again in the 74th minute as Dyer, who had come on 19 minutes earlier, controlled well with his chest before shooting past Begovic.
Bony's 86th-minute strike, which he slotted coolly past a helpless Begovic, looked set to secure the points, but a last-minute scramble in the box resulted in a penalty and Adam earned the visitors a share of the spoils.