The 23-year-old, who broke into the Barca first team in 2007 but struggled to make an impression after re-signing following two years at Roma, moves to the Britannia Stadium for an undisclosed fee.
Bojan spent last year on loan at Ajax and the Dutch giants, along with a number of other European teams, were eager to sign the highly-rated Spaniard.
However, it was Stoke who won the race for his signature in the end, much to the delight of manager Mark Hughes.
Hughes told Stoke's website: "Anyone who knows European football will be aware of him as a player and the fact that he sees his future at Stoke City is really exciting and an endorsement of the Club itself.
"He's desperate to prove himself in the Premier League and we're pleased to be able to offer him that platform.
"The time he spends with the squad in Germany will help him settle in and will give myself and the coaches the chance to take a good look at him."