"I [have] always wanted to play some rugby abroad and experience a different lifestyle and now have the opportunity to go and do that," said Steyn (29) on Monday.
"They have been negotiating with me for a while now and I have decided not to accept the offer from the Bulls to extend my contract but rather join Stade."
Bulls Super Rugby franchise coach Frans Ludeke said Steyn was leaving on good terms with the club.
"He will be missed as he is a world-class player but I know that he will still be giving us 110% until the end of his term."
Steyn has played 42 test matches for South Africa and scored 486 points. He has played Super Rugby since 2003.
In September last year, Springbok coach Heyneke Meyer dropped Steyn from the national side. – Reuters