Leia a entrada do meu blog "Byte and Switch" - cobre este cenário exato.
A resposta curta é que você precisa de um diodo de roda livre para conduzir a corrente quando o MOSFET é desligado; o solenóide tem indutância que armazena energia no campo magnético e, quando você desliga o MOSFET, a indutância gera, no entanto, é necessária muita tensão para continuar o fluxo dessa corrente. O pulso de tensão resultante causará uma falha no MOSFET, causando os danos que você está vendo.
Você também deve adicionar alguns resistores, um da saída do microcontrolador ao terra, para ter certeza de que está desligado quando o microcontrolador estiver em redefinição, e o outro do microcontrolador à porta MOSFET, para adicionar algum isolamento resistivo entre o interruptor de energia e o seu microcontrolador.
edit: Acabei de perceber que você está usando um BS170 MOSFET. Você já olhou a folha de dados? Esta é uma má escolha para um MOSFET usado como um interruptor de alimentação de um microcontrolador.
Primeiro de tudo, o MOSFET é especificado em 10V Vgs. Você está fornecendo a partir de um microcontrolador de 5V. Você precisa certificar-se de usar MOSFETs "de nível lógico" e com resistência especificada em 4,5V ou 3,3V Vgs. (Sugiro que você não use MOSFETs de voltagem ultrabaixa, pois é possível que ele acenda fracamente quando você acha que está desligado.)
Mais importante, é um pequeno MOSFET TO-92 especificado em 5 ohms máx. Rdson em 10V Vgs. Este MOSFET é bom para cargas muito pequenas, como os LEDs consumindo alguns miliamperes. Mas os solenóides geralmente consomem dezenas ou centenas de miliamperes, e você precisa calcular a perda de I2R no seu MOSFET para a carga atual que extrai e verifique se isso não superaquecerá o transistor. Veja a resistência térmica R theta JA na folha de dados e você pode estimar quanto aumento de temperatura há na peça.
Use um MOSFET na faixa de 20V-60V que tenha menor resistência - como eu disse no meu comentário, precisamos saber quanta corrente o seu solenóide extrai se quisermos ajudá-lo.