Leo is the narrator of our story, the guy with us in the prologue several years before the story begins and the guy at the end in the epilogue, many years later. All of the events are filtered through Leo's lens, and we get to know him very well through his thoughts and interactions with people, specifically Stargirl and Archie. We are with him through his central internal conflict regarding the decision he must make between the group and Stargirl. He makes his choice, and we are there to learn about what happens as a result. We see how he is forever influenced by the events of the novel.
You can make a convincing case for naming Stargirl as the protagonist. After all, the book is named Stargirl, it's about Stargirl, and she is the character that everyone is most fascinated with throughout the novel. Although we aren't privy to Stargirl's thoughts, she is a very open person, so in a way, what she tells Leo and other people most likely accurately reflects what is going on in her mind. We have no reason to believe otherwise, at least. She is changed by conflicts and events that take place in the novel, just like any protagonist must be.