The 22-year-old England international has signed a six-year deal and is City boss Pep Guardiola's eighth signing.
Stones was earlier named in City's official Champions League squad, published on the Uefa website before the transfer was confirmed.
"It's an ambitious club with a great manager so I can't wait to get stuck in," he said.
"I know it will be tough getting a place in this team but I'm determined to become the best player I can be and help us to success."
Last year, City made Raheem Sterling the most expensive English player ever when he joined the club for £49m from Liverpool.
Brazilian David Luiz is the most expensive defender in history, joining French champions Paris St-Germain from Chelsea in 2014.
Everton rejected a £40m bid for Stones from Chelsea last summer, with the player having a transfer request refused by chairman Bill Kenwright.
Stones, who started his career at Barnsley, made 95 appearances for the Toffees in three seasons, scoring once.