Veamos, me tardé tiempo en entender lo que quieres y tuve que leer varias veces el emnsaje, pero creo que ya sé lo que es.
Lo que quieres es que cuando el usuario seleccione la primera opción se capturen datos hasta que el usuario introduzca el presione cierta tecla (como una tecla de control) para no capturar más, ¿cierto? Si es así entonces creo que tu primer case quedaría algo así como:
case 1:
// Pedimos el valor a introducir
Console.WriteLine("Dame el valor a introducir");
do{
valor = Console.ReadLine();
if(Int32.TryParse(valor, out numero))
// Adicionamos el valor en el stack si es un número.
miPila.Push(numero);
} while(valor != "a");
break;
En este caso si el usuario introduce el caracter 'a' entonces deja de capturar los datos. También te dejé la conversión mediante el TryParse() de esta manera no te dará excepciones cuando el usuario ingrese un dato que no puede ser convertido a int32.
Espero que sea eso lo que querías. Saludos