Alright, I’ve only ever read the first two books, so for all those who also have, fear no spoilers, only educated guesses. I implore the people who’ve read ahead to not confirm this theory of mine.
Jon Snow is Lyanna and Rhaegar’s son, i.e. Daenerys’ nephew.
That’s why he looks like a Stark. Because of his mother.
That’s the promise Ned made to Lyanna. “Promise me”, she said, from her bed of blood… She died in childbirth.
Think of what honor meant to Ned Stark. He wouldn’t just sleep with anybody and bring back the kid. In the middle of a war like that? Not Eddard Stark.
That’s why he looks so pained whenever anybody asks about Jon’s mother.
She made him swear that he would protect him. And, after the way Rhaegar and his young wife, and infant son were treated… well, to let anyone know that Jon was as Targaryen as Stark would have meant certain death for the infant, as he would be the true heir to the throne… No… Ned couldn’t tell anyone. Not even his wife, Catelyn…
The only way he could avoid any questions as to why he was bringing back an infant after a royal war/massacre like that… was to claim that the boy was his own flesh and blood. And, Ned didn’t have to lie. Jon is his flesh and blood. He’s just not his son.
Jon is Ned’s nephew, first, and last, born of his sister Lyanna Stark, who was carried away by Prince Rhaegar Targaryen and died in a pool of her own blood, in her own bed.
“Promise me“, she said.