I think what you're hearing is not the difference between [st] and [sd], but whether the 't' is aspirated [stʰ] or not [st]. In Chinese, these are two different phonemes, and Pinyin represents [tʰ] by 't' and [t] by 'd'. These sounds are two different varieties (allophones) of /t/ in English; the difference between /d/ and /t/ is whether it is vocalized or not.
The rule in English (judging from your examples) is that if the syllable starts with 'st', the 't' is not aspirated; if the syllable starts with 't' and the previous one ends with 's', then the 't' is aspirated. Where you break the 'st' between syllables depends on a lot of factors, including which syllable is stressed. If the 'st' occurs at the start of a stressed syllable, it won't be aspirated (unless there's a morpheme boundary, as in mistook).
I would also suspect that it depends on the speaker in some words (I would guess destiny is one of these).