yversow, antes de qualquer coisa deixe-me dizer que while não é uma função, é uma instrução de controle de fluxo. Sobre a sua solução para o algoritmo, devo alertá-lo sobre alguns erros de lógica e, também, estilo de programação: Começando pela inclusão dos arquivos de cabeçalhos: #include<conio.h>
#include<stdlib.h>
Se você quiser que seus programas sejam portáveis, nunca use o módulo conio. É um módulo antigo e não-portável. E sem falar que ele é desnecessário.
Nesse programa também não é necessário incluir o módulo stdlib, visto que seu programa não usa nenhuma função dessa biblioteca.
Procure estudar sobre a Biblioteca Padrão da Linguagem C e entender qual o papel de cada módulo dessa biblioteca, para evitar o uso desnecessário desses arquivos.
Sobre o restante do código, procure usar nomes de variáveis que sejam significativos.
Ex.: Use idade no lugar de valor. Também pode usar contador no lugar de soma.
Como última dica, procure evitar o uso de system("pause") para pausar a execução do programa. Essa instrução também não é portável.
Se você executa seus programas no Windows e, por isso, precisa usar uma instrução para pausar a execução do programa, use um simples getchar().
Abaixo segue a implementação que eu usaria para a resolução do seu problema:
#include <stdio.h>
#define SAIR (-1)
int main(void)
{
int idade, contador = 0;
do
{
printf("Informe a idade: ");
scanf("%d", &idade);
if (idade >= 18)
contador++;
}
while (idade != SAIR);
printf("Total de pessoas maiores de idade = %d\n", contador);
return 0;
}