The 29-year-old winger arrives at the Britannia Stadium after his contract with Barcelona expired over the course of the summer.
Afellay, who has been capped 50 times by the Netherlands and most recently against Spain in March, joins fellow countrymen Erik Pieters and Marco van Ginkel in Mark Hughes' Stoke squad, along with ex-Barcelona teammates Bojan, Marc Muniesa and Moha.
He is the Club's eighth close season signing following the arrivals of Phillip Wollscheid, Jakob Haugaard, Joselu, Marco van Ginkel, Glen Johnson, Shay Given and Moha.
City Chief Executive Tony Scholes said: "It's no secret that Ibrahim was wanted by a number of clubs and we are understandably delighted that he has chosen to join us.
"He's clearly excited about the prospect of playing in the Premier League and the fact that he knows so many players who are already at the Club will no doubt help him settle into his new surroundings."
Afellay has flown to France to link-up with the Potters squad at their training camp in Evian and is available to be involved in this weekend's Colonia Cup competition in Germany.
He started his career with Dutch giants PSV Eindhoven, where he scored 35 goals in 159 league appearances and helped them land four Eredivisie titles.
He won a whole host of honours during his time with Barcelona - including the Champions League - although his time at the Nou Camp was disrupted by injury problems.
Afellay made 21 league appearances for Barca and had loan spells with Schalke 04 in Germany and Greece outfit Olympiacos. He played 31 games for club and country last season.
He made his debut for Holland in 2007 and appeared in the 2010 World Cup, where the Dutch finished as runners-up, as well as Euro 2008 and 2012.