Mikel was without a club after terminating his contract with Turkish side Trabzonspor back in March.
The 33-year-old’s latest move is his third spell in England, having also spent the second half of the 2018/2019 season with Middlesbrough.
Mikel previously spent eleven years with Chelsea, where he won two Premier League titles, three FA Cups, two League Cups, one Champions League and one Europa League.
Stoke City finished 15th in the Championship last season.
Stoke boss Michael O’Neill said: ‘We’re delighted to bring John to the Club. His playing career speaks for itself and underlines his calibre as a player.
‘I was really impressed with him when we met for the first time and he outlined what he wants from the next phase of his career.
‘We spent four hours talking and he made it clear he wants to get back into the Premier League and finish his career there and hopefully he can do that with Stoke City.’
Mikel is Stoke City’s fourth signing of the summer after the Potters also brought in Morgan Fox, James Chester and Steven Fletcher.
Former Nigeria captain Mikel earned 91 caps for his country and helped the Super Green Eagles to Africa Cup of Nations glory in 2013.