We told my 7 year old stepdaughter rather early. I had been down at college when I found out, and had a threatened miscarriage. At 10 weeks I dropped out of college after I was told I had to choose either college or my baby. She asked why I was back, and we kept saying cuz I was sick, cuz I was sick. Then one day I was having a rough day, cramps, felt sick, was curled up holding my stomach and she was like "Momma? Is your tummy okay?" I told her yes, my tummy was okay, but we would talk about it when Daddy got home.
When her dad got home, we sat, all 3 of us, and had a little chat. We explained to her that Momma was having a baby, but that the baby was sick and having some problems, so the doctors wanted me to be home where people could take care of me. At first I wasn't sure I wanted to tell her even that much, cuz she was (predictably) very excited about the baby, but I'm glad we did, cuz I have continued to have a lot of problems with this pregnancy and carrying to term, but she already knew the baby was 'kinda sick' so whenever we start having problems she just goes "Don't worry momma, my baby sister will be okay, and will be here to play with me soon." At one point we had to tell her that her baby sister might not be coming to play with her at all, and she said "I know we'll be sad, but then she can play with the Angels too!"
Such a sweet little girl.
We pretty much decided that honesty was the best plan (with age appropriate limits lol). If this was a normal, healthy pregnancy, I would've probably told her around 14-16 weeks, which is when my clothes started not fitting all that well.