Usage of в vs на is basically something you learn with the word itself, that is some words go with в, others go with на, and you just have to learn it.
The most broad distinction is that на is generally used with open-space objects (like стадион in your example), while в is used with enclosures.
However, this is very vague and exceptions are so numerous that it's just better to say the preposition is something you learn with the word.
With some words the usage of the preposition varies with the speech register (prison argots use на тюрьме, на зоне, на больнице, while normative Russian uses в); regional and municipal preferences (в Украине, на Лобне, на Сходне); awareness of tradition and etymology (на ФГУП, на Физтехе) etc.
So, in your case, на стадионе is correct and *в стадионе is not, same as (я видёл её) в автобусе is correct and *(я видел её) на автобусе is not, just because there very words require these very prepositions.