Direi proprio che devi cambiare il codice e usare i puntatori ...

codice:
#include <stdio.h>
#include <stdlib.h>

typedef struct EL
{
  float Ascissa;
  float Ordinata;
  struct EL  *next;
} Punto;

void stampa(Punto *lista)
{
  Punto *current=lista;

  while(current)
  {
    printf("(%f,%f) ",current->Ascissa,current->Ordinata);
    current=current->next;
  }
}

void TOP(Punto **lista, float A, float O)
{
  Punto *newstart;
  newstart=(Punto *)malloc(sizeof(Punto));
  newstart->Ascissa=A;
  newstart->Ordinata=O;
  newstart->next=*lista;
  
  *lista=newstart;  
}

int main()
{
  float A, O;
  Punto *start=NULL;
  
  while(1>0)
  {
    scanf("%f",&A);
    scanf("%f",&O);
    TOP(&start,A,O);
    stampa(start);
  }

  return 0;
}