Drafted in 2012 with pick No. 27 by GWS, Stewart spent four years at the club before being traded to the Bombers in 2016.
He has since played 60 games in red and black across six seasons, a total of 78 AFL games.
As a utility, he has shown he can be played up forward while also helping down back, taking on the oppositions' key forwards.
Despite Essendon's 15th place finish in 2022, the 28-year-old is optimistic for both his own and the club's future.
"I feel as though my best football is a head of me and I’m driven to working hard on improving this football club," Stewart said to Essendon media.
"It has been a challenging year for a variety of reasons but I believe that this why we play football. The 150th year celebrations showcased how challenging times can make winning Premierships more meaningful."
General manager of list and recruiting Adrian Dodoro said Stewart’s versatility makes him a key member of the Dons squad.
"James is an experienced key position player who can use his strength to be a key target in attack or transition down back to stop opposition forwards," Dodoro said.
"We look forward to seeing James continue to grow and develop over the years to come."
Stewart's signature may prove more important, given the Bombers currently only have three players aged over 28, he provides experience to a young side.